package it.unibo.iss.domotica;

import it.unibo.iss.domotica.edDomain.CatConsumptionEnum;
import it.unibo.iss.domotica.edDomain.CatUsage;
import it.unibo.iss.domotica.edDomain.Elettrodomestico;
import it.unibo.iss.domotica.edDomain.StatoED;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class CommonUtilities {
	
	private static final String propertiesPath = "";
	
	public static void updateDataSourceListEd(List<Elettrodomestico> elettrodomestici, ArrayList<HashMap<String, Object>> data) {
//		for(int i=0 ; i < 9 ; i++) {
//			HashMap<String, Object> edMap = new HashMap<String, Object>();
//		
//			edMap.put("edName", "ed" + i);
//			edMap.put("edState", "Off");
//			
//			data.add(edMap);
//		}
		
		data.clear();
		
		for(Elettrodomestico ed : elettrodomestici) {
			HashMap<String, Object> edMap = new HashMap<String, Object>();
		
			if(ed.getStato() == StatoED.ACTIVE) {
				edMap.put("edStateImage", R.drawable.stato_attivo);
			}
			else if(ed.getStato() == StatoED.OFF) {
				edMap.put("edStateImage", R.drawable.stato_spento);
			}
			else {
				edMap.put("edStateImage", R.drawable.stato_condizionato);
			}
			edMap.put("edName", ed.getNome());
			edMap.put("edState", ed.getStato());
			edMap.put("edConsumption", String.format("%.2f", ed.getConsumoAttuale()));
			
			data.add(edMap);
		}
	}
	
	public static void updateListElettrodomestici(List<Elettrodomestico> elettrodomestici) {
		int i,j;
		
		for(i=0 ; i < 3 ; i++) {
			elettrodomestici.add(new Elettrodomestico("edIB" + i, CatUsage.INDISPENSABILE, CatConsumptionEnum.LOW));
		}
		
		for(j=i+1 ; j < (i+1+3) ; j++) {
			elettrodomestici.add(new Elettrodomestico("edSB" + j, CatUsage.SUPERFLUO, CatConsumptionEnum.LOW));
		}
		
		for(i=j+1 ; i < (j+1+3) ; i++) {
			elettrodomestici.add(new Elettrodomestico("edIM" + i, CatUsage.INDISPENSABILE, CatConsumptionEnum.MEDIUM));
		}
		
		for(j=i+1 ; j < (i+1+3) ; j++) {
			elettrodomestici.add(new Elettrodomestico("edSM" + j, CatUsage.SUPERFLUO, CatConsumptionEnum.MEDIUM));
		}
		
		for(i=j+1 ; i < (j+1+3) ; i++) {
			elettrodomestici.add(new Elettrodomestico("edIA" + i, CatUsage.INDISPENSABILE, CatConsumptionEnum.MEDIUM));
		}
		
		for(j=i+1 ; j < (i+1+3) ; j++) {
			elettrodomestici.add(new Elettrodomestico("edSA" + j, CatUsage.SUPERFLUO, CatConsumptionEnum.MEDIUM));
		}
	}
	
	public static Elettrodomestico getElettrodomestico(List<Elettrodomestico> elettrodomestici, String edName) {
		for(Elettrodomestico ed : elettrodomestici) {
			if(ed.getNome().equals(edName)) {
				return ed;
			}
		}
		
		return null;
	}
}
